package modules.lock.producers3;


/**
 * Lock的
 * 生产者和消费者 - 等待唤醒、通知唤醒
 * 通过Condition可以精准通知唤醒
 * 多线程下顺序调用
 * 适合 生产线 -》 下单-》支付-》交易 -》物流
 * @author shengren.yan
 * @create 2021-03-06
 */
public class ProSychronized5 {

    public static void main(String[] args) {
        // 传统的生产者和消费  wait 等待  notifyAll 唤醒
        Ticket5 ticke = new Ticket5();
        // 不管什么线程，都是限制顺序是123 123 123
        new Thread(()->{ for (int i=0;i<=10;i++){ ticke.doA(); } },"线程A").start();
        new Thread(()->{ for (int i=0;i<=10;i++){ ticke.doA(); } },"线程B").start();
        new Thread(()->{ for (int i=0;i<=10;i++){ ticke.doB(); } },"线程C").start();
        new Thread(()->{ for (int i=0;i<=10;i++){ ticke.doC(); } },"线程D").start();
        new Thread(()->{ for (int i=0;i<=10;i++){ ticke.doA(); } },"线程E").start();
        new Thread(()->{ for (int i=0;i<=10;i++){ ticke.doC(); } },"线程F").start();
    }

}
